phy404instrumentationphysiquegrenoblefandomcom_fr-20200214-history
Château d'eau
But du Projet Le but de ce projet est de réaliser un château d'eau autonome qui se rempli automatiquement grâce à une pompe et un réservoir externe. Si le niveau est bas, la pompe se mettra en marche jusqu'à ce qu'un capteur situé en haut du château détecte l'eau à nouveau. Cahier des charges Un Arduino fournira la PWM qui commandera la boîte délivrant la tension et le courant nécessaires au bon fonctionnement du moteur de la pompe (6 V, 350 mA). Une tension et un courant impossible à délivrer avec l'Arduino seul. Capteurs nécessaires La mesure des niveaux d'eau haut et bas se fera avec des détecteurs de niveau constitués de franges conductrices qui laissent passer le courant dès qu'un matériau conducteur créé le contact. Besoins électriques Pour amplifier la tension et avoir un courant suffisant au fonctionnement de la pompe, on utilisera une boîte noire contrôlée en mode externe par l'Arduino avec une PWM. Besoins Mécaniques Le support est un long château vertical sur lequel sera fixé les deux capteurs de niveau. Un réservoir sera également utilisé et relié à la pompe pour fournir l'eau nécessaire ou remplissage du château. Arduino L'Arduino UNO possède plusieurs sorties numériques. Ici la sortie D9 est utilisée par la PWM servant à alimenter la pompe, et la led servant de témoin de fonctionnement de la pompe est activer par la pin D8. Les lectures de seuil se feront de manière analogique avec la pin A5 pour le détecteur de seuil bas et la pin A3 pour le détecteur de seuil haut. Programme Arduino void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(led, OUTPUT); // initialisation de la pin de la led en sortie pinMode(pompe, OUTPUT); // initialisation de la pin de la pompe en sortie }''' '''void loop() { // initialisation des variables du code int led = 8; // pin led = 8 int pompe = 9; // pin pompe = 9 int puissance = 0; int fadeAmount = 5; // incrément de la pwm int Ubas; // signal du capteur bas int Uhaut; //signal du capteur haut int Useuilbas = 275; // seuil de détection du niveau d'eau bas int Useuilhaut = 250; // seuil du détection du niveau d'eau maximum // boucle de condition sur la détection d'eau : '' Ubas = analogRead(5); ''// lecture du signal envoyé par le capteur haut Serial.println(Ubas); // écriture de la valeur du signal pour les tests des valeurs de seuil if (Ubas > Useuilbas){ // vérification si le niveau est faible ou pas Uhaut = analogRead(3); // si niveau faible lecture du niveau haut pour entrer dans la boucle Serial.println(Uhaut); // écriture de la valeur du niveau haut pour les tests des valeurs de seuil while (Uhaut > Useuilhaut){ // tant que l'eau n'est pas détecté en haut, la pwm controlant la pompe tourne '' ''// lignes codes PWM pompe digitalWrite(8,HIGH); digitalWrite(pompe, puissance); // change the power for next time through the loop: puissance = puissance + fadeAmount; // reverse the direction of the fading at the ends of the fade: if (puissance 0 || puissance 255) { fadeAmount = -fadeAmount ; }' ''// wait for 30 milliseconds to see the dimming effect delay(30); //fin de pwm Uhaut = analogRead(3); // vérification de l'optention du niveau maximal ou non Serial.println(Uhaut); // écriture de la valeur du niveau haut pour les tests des valeurs de seuil '' '} digitalWrite(8,LOW); // extinction de la led digitalWrite(9,LOW); // extinction de la pompe Ubas = analogRead(5); // nouvelle vérification du niveau bas de l'eau pour sortir de la boucle if Serial.println(Ubas); // écriture de la valeur du niveau bas pour les tests des valeurs de seuil }' delay(1000); ''// temps entre chaque vérification de niveau, à modifier si pompe trop rapide ou trop lente '''} Tests La Led alimentée par la pin D8 elle-même commandée par la fonction digitalRead juste avant la mise en route de la pompe témoigne de la vérification de la condition "Le niveau est plus bas que le niveau seuil indiqué". Mesures Les mesures de tension établissant les meilleures valeurs de fonctionnement de la pompe dans notre système montrent qu'elle doit fonctionner sous une tension de 15 V et avec un courant de 380 mA. Problèmes rencontrés Les principaux problèmes rencontrés ont été de déterminer les seuils de détection de l'eau par les détecteur de niveau. En effet, les valeurs analogiques données par le capteur varient en fonction des conditions d'utilisation du capteur (capteurs mouillés au préalable puis plonglés à nouveau, capteur sec plongé rapidement dans de l'eau). Le temps de réaction des capteurs a donc été un fait à tenir compte. L'autre problème rencontré est le fonctionnement de la pompe avec une tension et un courant suffisant. Les questions d'utilisation d'un transistor, d'un ampli opérationnel ou d'une boîte noire a été la principale question du projet. Conclusions